/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package webservices;

import BaseDatos.BaseDatos;
import Objetos.Producto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.naming.NamingException;

/**
 *
 * @author administrador
 */
@WebService(serviceName = "Inventario", 
            targetNamespace = "http://digamaracay3.dynalias.com:8080/WSS/Inventario")
public class Inventario {
    private final String target = "http://digamaracay3.dynalias.com:8080/WSS/Inventario";
    private static BaseDatos bd;
    /**
     * Genera un objeto tipo Producto a partir de su codigo.
     * Recibe una variable tipo cadena y retorna objeto tipo Producto
     * con sus atributos seteados.
     * @param codigo Variable tipo cadena que no puede ser null ni cadena de espacios.
     * @return Objeto tipo Producto con sus atributos seteados. 
     */
    @WebMethod(operationName = "getProducto")
    public Producto getProducto(@WebParam(name = "codigo",
                                          targetNamespace= target) String codigo) {
        //TODO write your implementation code here:
        Producto producto = this.obtenerProducto(codigo);
        return producto;
    }
    
    /**
     * Obtiene un producto on todas sus caracteristicas a partir de su codigo.
     * Recibe una variable tipo cadena y retorna objeto tipo Producto
     * con sus atributos seteados.
     * @param codigo Variable tipo cadena que no puede ser null ni cadena de espacios.
     * @return Objeto tipo Producto con sus atributos seteados.
     */
    public static Producto obtenerProducto(String codigo){
        if(!codigo.trim().equals("") || codigo!=null ){
            try{
                bd = new BaseDatos();
                Connection conn = BaseDatos.getFoxPro().getConnection();
                String sql = "SELECT * FROM FoxPro.Productos ";
                String where = "WHERE codigo LIKE '"+codigo+"';";
                System.out.println("sql = " + sql+where);
                PreparedStatement ps = conn.prepareStatement(sql+where);
                ResultSet result     = ps.executeQuery();
                if(result.next()){
                    Producto resp = new Producto();
                    resp.setId(result.getInt("id"));
                    resp.setCodigo(result.getString("codigo"));
                    resp.setDescripcion(result.getString("descripcion"));
                    resp.setPvp(result.getDouble("pvp"));
                    resp.setSugerido(result.getDouble("sugerido"));
                    resp.setTipo(result.getString("embalaje"));
                    resp.setOferta(result.getString("oferta"));           
                    resp.setTipoPrecio(result.getString("tipopre"));
                    resp.setUniporem(result.getInt("uniporem"));
                    return resp;
                }else{
                    return null;
                }
            }catch(NamingException nex){

            }catch(SQLException sqlex){

            }
        }
        else{
            System.out.println("Rellene todos los campos");
            return null;
        }
        return null;
    }
}
